package com.kerrykidz.scminvoicing.service;

import java.util.List;

import javax.servlet.http.HttpServletResponse;

import com.kerrykidz.scminvoicing.dao.model.ScmPayformEntity;
import com.kerrykidz.scminvoicing.dao.model.ScmPayformOrderEntity;
import com.kerrykidz.scminvoicing.dao.model.ScmPurOrderEntity;
import com.kerrykidz.system.vo.ExportParamVo;
import com.rdp.framework.exception.RDPException;

public interface IScmPayformService {

	/**
	 * 付款申请单 列表
		 * @Description   
		 * List<ScmPayformEntity>
		 * @author chenyu
		 * 2014年9月7日 下午5:36:53
	 */
	public List<ScmPayformEntity> findScmPayformEntityList(ScmPayformEntity scmPayform); 
	
	/**
	 * 根据主键id，获得付款申请单信息
		 * @Description   
		 * ScmPayformEntity
		 * @author chenyu
		 * 2014年9月7日 下午5:36:53
	 */
	public ScmPayformEntity getScmPayformById(String pkPayformId);
	
	/**
	 * 新增 付款申请单
		 * @Description   
		 * void
		 * @author chenyu
		 * 2014年9月7日 下午5:49:15
	 */
	void addScmPayform(ScmPayformEntity scmPayform); 
	
	/**
	 * 修改付款申请单
		 * @Description   
		 * void
		 * @author chenyu
		 * 2014年9月7日 下午5:50:00
	 */
	void updateScmPayform(ScmPayformEntity scmPayform); 
	
	/**
	 * 新增付款申请 时 的 采购订单列表
		 * @Description   
		 * List<ScmPurOrderEntity>
		 * @author chenyu
		 * 2014年9月16日 上午11:08:15
	 */
	List<ScmPurOrderEntity> findScmPurOrderPayForm(ScmPurOrderEntity scmPurOrder) throws RDPException;
	
	/**
	 * 根据 付款申请单编号，获取 付款申请明细  (采购订单列表)
		 * @Description   
		 * List<ScmPurOrderEntity>
		 * @author chenyu
		 * 2014年9月16日 下午1:46:03
	 */
	List<ScmPurOrderEntity> scmPurOrderListByPayFormId(String pkPayFormId) throws RDPException;
	
	/**
	 * 根据 付款申请单编号，,供应商编号 获取 付款申请明细  (采购订单列表)
		 * @Description   
		 * List<ScmPurOrderEntity>
		 * @author chenyu
		 * 2014年9月16日 下午1:46:03
	 */
	List<ScmPurOrderEntity> scmPurOrderListSupIdAndByPayFormId(String supplyId,String pkPayFormId) throws RDPException;
	
	/**
	 * 根据 付款申请单Id，采购订单Id 删除 付款申请单明细
		 * @Description   
		 * void
		 * @author chenyu
		 * 2014年9月17日 上午9:39:51
	 * @throws RDPException 
	 */
	void delScmPayformOrderByTwoId(String fkPayformId,String fkPurordId) throws RDPException;
	
	/**
	 * 根据 付款申请单Id，全部删除  付款申请单明细
		 * @Description   
		 * void
		 * @author chenyu
		 * 2014年9月17日 上午9:39:51
	 */
	void delScmPayformOrderByPayformId(String fkPayformId);
	
	/**
	 * 根据 付款申请单Id，采购订单Id 获取  付款申请单明细
		 * @Description   
		 * ScmPayformOrderEntity
		 * @author chenyu
		 * 2014年9月17日 上午10:04:02
	 */
	ScmPayformOrderEntity getPayFormOrderByTwoId(String fkPayformId,String fkPurordId)throws RDPException;
	
	/**
	 * add 付款申请单明细
		 * @Description   
		 * void
		 * @author chenyu
		 * 2014年9月17日 上午10:12:36
	 */
	void addScmPayFormOrder(ScmPayformOrderEntity scmPayFormOrder);
	
	/**
	 * 
	 * @Description 批量新增 付款申请单明细
	 * @param scmPayFormOrderList
	 * @author chenyu
	 * @date 2014年09月09日下午4:39:23
	 */
	void addScmPayFormOrderBatch(List<ScmPayformOrderEntity> scmPayFormOrderList);
	
	/**
	 * 根据采购订单Id 判断是否已经添加过该采购订单
	 * @param fkPurordId
	 * @return
	 * @throws RDPException
	 */
	List<ScmPayformOrderEntity> getPayFormOrderByPurordId(String fkPurordId)throws RDPException;
	
	/**
	 * 根据 付款申请单Id 获取  付款申请单明细
		 * @Description   
		 * List<ScmPayformOrderEntity>
		 * @author chenyu
		 * 2014年9月17日 上午10:04:02
	 */
	List<ScmPayformOrderEntity> getPayFormOrderByFkPayformId(String fkPayformId);
	
	/**
	 * 导出付款明细
	 * @param vo
	 * @param response
	 * @throws RDPException
	 * @date: 2014年11月20日
	 */
	public void exportPayDetailed(ExportParamVo vo,HttpServletResponse response)throws RDPException;
}
